package managers;

import java.sql.SQLException;
import java.util.LinkedList;

import dataBase.QueryDB;
import dataProviders.BadanieDataProvider;
import dataProviders.NormaDataProvider;
import dataProviders.PatientsDataProvider;
import dataProviders.SamplesDataProvider;
import dataProviders.UsersDataProvider;
import entities.Badanie;

public class BadanieManager {
	static QueryDB db = new QueryDB();
	private int[] wybraneBadania;
	int IDPracownika;
	LinkedList<Badanie> listaDostepnychBadan;
	public BadanieManager()
	{
		listaDostepnychBadan = BadanieDataProvider.getNiezbadaneBadania();
	}
	public String[][] pobierzListeDostepnychBadanDoTabeli() {
		String[][] wynik = new String[listaDostepnychBadan.size()][5];
		for(int i=0;i<wynik.length;i++)
			{
			wynik[i][0]=""+listaDostepnychBadan.get(i).getBadanieID();
			wynik[i][1]=""+listaDostepnychBadan.get(i).getProbkaID();
			wynik[i][2]=SamplesDataProvider.getNameOfSampleType(listaDostepnychBadan.get(i).getProbkaID());
			wynik[i][3]=""+listaDostepnychBadan.get(i).getPriorytet();
			wynik[i][4]=BadanieDataProvider.pobierzNazweTypuBadania(listaDostepnychBadan.get(i).getTypBadanID());
			}
		return wynik;
	}
	public void setWybraneBadania(int[] selectedRows) {
		wybraneBadania=selectedRows;
		
	}
	public String[][] pobierzListeWybranychBadanDoTabeli() {
		String[][] wynik = new String[wybraneBadania.length][6];
		Badanie wybraneBadanie=null;
		for(int i=0;i<wynik.length;i++)
			{
			wybraneBadanie=listaDostepnychBadan.get(wybraneBadania[i]);
			wynik[i][0]=""+wybraneBadanie.getBadanieID();
			wynik[i][1]=""+wybraneBadanie.getProbkaID();

			wynik[i][2]=SamplesDataProvider.getNameOfSampleType(wybraneBadanie.getProbkaID());
			wynik[i][3]=BadanieDataProvider.pobierzNazweTypuBadania(wybraneBadanie.getTypBadanID());
			wynik[i][4]= new String();
			wynik[i][5]=NormaDataProvider.pobierzNorme(wybraneBadanie.getTypBadanID(),PatientsDataProvider.wiekPacjenta(wybraneBadanie.getProbkaID()));
			}
		return wynik;
	}
	public void wprowadzWyniki(int i, Object valueAt) {
		Badanie badanie = listaDostepnychBadan.get(wybraneBadania[i]);
		String sql = "UPDATE Badania SET "+
					"wyniki = '"+ valueAt+"', dataWykonania = getdate(),"+
					" technikID = "+UsersDataProvider.getLoggedUser().getId()+" WHERE badanieID = "+badanie.getBadanieID();
		System.out.println(sql);
		try {
			db.dbSqlUpdate(sql);
			db.dbCommit();
		} catch (SQLException e) {
			
			e.printStackTrace();
		}
		
		
	}
}
